#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>

int Index = 0; //窗口索引，判断当前应该打开哪个窗口

void gotoxy( int x, int y){
    COORD coord;
    coord.X = x;
    coord.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

void clrscr() {
    system("cls");
}

int ReadMaxScore(){
	return 666;
}

int ReadScore(){
    return 99;
}

void CreatePlayWindow(){
        //屏幕初始化
		//清屏
		clrscr();
		//获取屏幕缓冲区信息
		HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    	CONSOLE_SCREEN_BUFFER_INFO csbi;
   		GetConsoleScreenBufferInfo(hConsole, &csbi);
   		//获取控制台宽度、高度
  	  	int consoleWidth = csbi.srWindow.Right - csbi.srWindow.Left + 1;
  	  	int consoleHeight = csbi.srWindow.Bottom - csbi.srWindow.Top + 1;
   		//绘制边框，大小为控制台长、宽的4/5，偏移量为1/10
		int padding_width = consoleWidth/10;
		int padding_height = consoleHeight/10;
		//绘制窗口边界
		int i;
		//up
		gotoxy(padding_width,padding_height);
		for (i=padding_width;i<consoleWidth-padding_width;i++){
			putchar('*');
		}
		//down 
		gotoxy(padding_width,consoleHeight-padding_height);
		for (i=padding_width;i<consoleWidth-padding_width;i++){
			putchar('*');
		}
		//left
		for (i=padding_height;i<consoleHeight-padding_height;i++){
			gotoxy(padding_width,i);
			putchar('*');
		}
		//right
		for (i=padding_height;i<consoleHeight-padding_height;i++){
			gotoxy(consoleWidth-padding_width,i);
			putchar('*');
		}
		//绘制左上角信息
        //左上角空位大概率2行，把部分内容整合到一行输出起
		//最高分,当前分
		gotoxy(0,0);
		printf ("历史最高分：%d\t当前得分:%d",ReadMaxScore(),ReadScore() );
		//移动操作,刷新操作，暂停操作
		gotoxy(0,1);
		printf ("WSAD移动\tF5刷新\tEsc暂停");
        //游戏内容区域
            /*
            此处粘贴游戏运行具体代码
            包括游戏运行的具体逻辑
            用户的键盘输入如Esc，F1，F2，WASD
            游戏结束的判断，并调用CreateEndWindow函数
            游戏暂停的判断，并调用CreatePauseWindow函数
            游戏暂停后继续的判断，返回当前函数内部并continue输入循环，即保留游戏进度
            */
}